package com.c2c.mapper;

import com.c2c.po.Orders;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface OrdersMapper {

    /**
     * 生成订单  当点击购买并且付款后可进行此操作
     * @param orders  查询结果
     */
//    @Insert("insert into `order`(orderId,orderState,orderRiseTime,expressId,userAccount,goodsId) values(#{orderId},1,#{orderRiseTime},#{expressId},#{userAccount},#{goodsId})")
    void insertOrder(Orders orders);

    /**
     * 更改订单状态
     * 如果是结束订单附上评价的话   此处依旧可以使用，使用Order封装
     */
//    @Update("update `order` set orderState = #{orderState} ,orderEndTime = #{orderEndTime}, " +
//            "orderEvaluate = #{orderEvaluate}, orderChar = #{orderChar}, orderGrade = #{orderGrade} where orderId = #{orderId}")
    void updateOrderStateByOrderId(Orders orders);

    /**
     * 根据用户Id查询该用户以买家身份生成的订单
     * @return  查询结果
     */
//    @Select("select * from `order` where userAccount = #{userAccount}")
    List<Orders> findAllOrderByUserId(int userAccount);

    /**
     * 根据用户Id查询该用户以卖家身份生成的订单
     * @return  查询结果
     */
//    @Select("select * from `order` o where o.goodsId in (select goodsId from goods where goods.userAccount = #{userAccount})")
    List<Orders> findAllOrderByGoodsId(int userAccount);

//    @Select("select * from `order` where orderId = #{orderId}")
    Orders findOrderByOrderId(Orders orders);

    /**
     * 管理员可以查看所有订单信息
     */
//    @Select("select * from `order`")
    List<Orders> findAllOrder();

}
